#ifndef __GPIO_DEFS_H
#define __GPIO_DEFS_H
#include "gpio.h"
#include "common.h"
#define USE_INTERRUPT 1

#define CMT_CSB_GPIO                GPIOD
#define CMT_CSB_GPIO_PIN            GPIO_PIN_06

#define CMT_FCSB_GPIO               GPIOB
#define CMT_FCSB_GPIO_PIN           GPIO_PIN_04

#define CMT_SCLK_GPIO               GPIOA
#define CMT_SCLK_GPIO_PIN           GPIO_PIN_04

#define CMT_SDIO_GPIO               GPIOA
#define CMT_SDIO_GPIO_PIN           GPIO_PIN_03

#if USE_INTERRUPT

#define CMT_GPIO1_GPIO              GPIOC
#define CMT_GPIO1_GPIO_PIN          GPIO_PIN_04

#define CMT_GPIO2_GPIO              GPIOB
#define CMT_GPIO2_GPIO_PIN          GPIO_PIN_05

#endif
#define SET_GPIO_OUT_INIT(x)             gpio_set_out(x, x##_PIN)
#define SET_GPIO_IN_INIT(x)              gpio_set_in(x, x##_PIN)
#define SET_GPIO_IN_INIT_WITH_INT(x)     gpio_set_in_with_interrupt(x, x##_PIN, GPIO_EXTI_RISING)

#define SET_GPIO_OUT(x)             REG_CLEARBITS(x->DIR, x##_PIN);
#define SET_GPIO_IN(x)              REG_SETBITS(x->DIR, x##_PIN);
//#define SET_GPIO_IN(x)              REG_SETBITS(x->DIR, x##_PIN);

#define SET_GPIO_H(x)               REG_WRITE(x->BSRR, x##_PIN)
#define SET_GPIO_L(x)               REG_WRITE(x->BRR, x##_PIN)
#define READ_GPIO_PIN(x)            REG_READBITS(x->IN, x##_PIN)

#endif
